package com.studentsystem;

import javax.annotation.Resource;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Random;

/**
 * @Auther: shiquan
 * @Date: 2024/10/19 - 10 - 19 -16:23
 */
public class Test {
    public static void main(String[] args) {

        System.out.println(getcode());
    }

    private static String getcode() {
        //	长度为5
        //	由4位大写或者小写字母和1位数字组成，同一个字母可重复
        //数字可以出现在任意位置
        //1 创建一个集合添加所有的大写共和小写字母
        ArrayList<Character> list = new ArrayList<>();
        for (int i = 0; i < 26; i++) {
            list.add((char)('a' + i)); //第一次循环i=0 就是97   //第二次循环i=1 就是98 为b
            list.add((char)('A' + i));
        }
        //System.out.println(list);

        StringBuilder sb = new StringBuilder(); //字符串拼接
        //随机抽取4个索引
        SecureRandom r = new SecureRandom();
        for (int i = 0; i < 4; i++) {
            //获取随机索引 名字叫index
            int index = r.nextInt(list.size());
            //利用随机索引获取字符 字符c
            char c = list.get(index);  //后面要考虑拼接
            //把随机字符添加到sb中
            sb.append(c);
        }
        //System.out.println(sb);

        //3 把一个随机数字添加到末尾
        int number = r.nextInt(10);  //
        sb.append(number);

        //4 如果我们要修改字符串里面的内容
        //先把字符串变成字符数组, 在数组里面修改   然后创建一个新的字符串
        char[] arr = sb.toString().toCharArray();
        //拿着最后一个索引和随机索引进行交换
        int randomIndex = r.nextInt(arr.length);
        //最大索引指向的元素和随机索引指向的元素交换
        char temp = arr[randomIndex];
        arr[randomIndex] = arr[arr.length-1];
        arr[arr.length-1]=temp;

        //创建一个新的对象把arr放进去
        return new String(arr);
    }



}
